# @Time : 2024/10/25 23:30
# @Author : Fioman 
# @Phone : 13149920693

"""
参数传递:
1) 位置传参
2) 关键字传参
3) 缺省默认参数
4) 不定长位置传参
5) 不定长关键字传参
6) 限制必须是关键字传参
7) 解包传参
"""


def func(a, b, c=2, d=3, *args, e=1, f=2, **kwargs):
    """
    位置传参
    关键字传参
    不定长位置
    不定长关键字
    :param a:
    :param b:
    :param c:
    :param d:
    :param args:
    :param e:
    :param f:
    :param kwargs:
    :return:
    """
    print(a, b, c, d, args, e, f, kwargs)


func(1, 2, 3, 4, 5, 6, 7, e=100, f=200, g=300, h=400)
# 注意不定长参数后面的参数必须使用关键字传参,因为一旦使用位置传参都会被当成是*args解包掉
# *args是解包一个元组  **kwargs 是解包一个字典
